package java_2;

/**
 * Created by xupeng20 on 2019/1/25.
 */
public class java2_1 {
    /**
     * 给出两个 非空 的链表用来表示两个非负的整数。其中，它们各自的位数是按照 逆序 的方式存储的，并且它们的每个节点只能存储 一位 数字。

     如果，我们将这两个数相加起来，则会返回一个新的链表来表示它们的和。

     您可以假设除了数字 0 之外，这两个数都不会以 0 开头。
     示例：

     输入：(2 -> 4 -> 3) + (5 -> 6 -> 4)
     输出：7 -> 0 -> 8
     原因：342 + 465 = 807
     */
    class ListNode{
        int val;
        ListNode next;
        ListNode(int x){
            val = x;
        }
    }
    public ListNode merge(ListNode L1,ListNode L2){
        //取两数求和
        int sum = L1.val + L2.val;
        ListNode n1 = L1.next;
        ListNode n2 = L2.next;
        ListNode head = new ListNode(sum%10);
        ListNode temp = head;
        sum /= 10 ;
        while (n1 != null ||n2 != null || sum != 0){
            sum += (((n1 == null)? 0:n1.val)+((n2 == null)?0:n2.val));
            temp.next =new ListNode(sum%10);
            temp.next = temp;
            n1 = ((n1 ==null) ? null:n1.next);
            n2 = ((n2 ==null) ? null:n2.next);
            sum /=10;
        }
        return head;
    }


}
